package uteis;

public class strings
{
	public static String padRight(String s, int n)
	{
		return String.format("%1$-" + n + "s", s);
	}

	public static boolean checar_cpf_valido(String _cpf)
	{
		int d1 = 0, d2 = 0;
		int digito1 = 0, digito2 = 0, resto = 0;
		int digito_cpf;

		for (int i = 1; i < _cpf.length() - 1; i++)
		{
			digito_cpf = Integer.valueOf(_cpf.substring(i - 1, i)).intValue();

			d1 = d1 + (11 - i) * digito_cpf;

			d2 = d2 + (12 - i) * digito_cpf;
		}

		resto = (d1 % 11);

		digito1 = resto < 2 ? 0 : 11 - resto;
		
		d2 += 2 * digito1;

		resto = (d2 % 11);

		digito2 = resto < 2 ? 0 : 11 - resto;

		String num_dig_verific = _cpf.substring(_cpf.length() - 2, _cpf.length());

		String num_dig_resultado = String.valueOf(digito1) + String.valueOf(digito2);

		return num_dig_verific.equals(num_dig_resultado);
	}

	public static boolean checar_cnpj_valido(String _cnpj)
	{
		boolean cnpj_valido = false;

		int soma = 0, dig;
		String cnpj_calc = _cnpj.substring(0, 12);

		if (_cnpj.length() == 14)
		{

			char[] chr_cnpj = _cnpj.toCharArray();

			
			for (int i = 0; i < 4; i++)
				if (chr_cnpj[i] - 48 >= 0 && chr_cnpj[i] - 48 <= 9)
					soma += (chr_cnpj[i] - 48) * (6 - (i + 1));
			for (int i = 0; i < 8; i++)
				if (chr_cnpj[i + 4] - 48 >= 0 && chr_cnpj[i + 4] - 48 <= 9)
					soma += (chr_cnpj[i + 4] - 48) * (10 - (i + 1));
			dig = 11 - (soma % 11);

			cnpj_calc += (dig == 10 || dig == 11) ? "0" : Integer.toString(dig);

	
			soma = 0;
			for (int i = 0; i < 5; i++)
				if (chr_cnpj[i] - 48 >= 0 && chr_cnpj[i] - 48 <= 9)
					soma += (chr_cnpj[i] - 48) * (7 - (i + 1));
			for (int i = 0; i < 8; i++)
				if (chr_cnpj[i + 5] - 48 >= 0 && chr_cnpj[i + 5] - 48 <= 9)
					soma += (chr_cnpj[i + 5] - 48) * (10 - (i + 1));
			dig = 11 - (soma % 11);
			cnpj_calc += (dig == 10 || dig == 11) ? "0" : Integer.toString(dig);

			if (_cnpj.equals(cnpj_calc))
			{
				cnpj_valido = true;
			}

		}
		return cnpj_valido;
	}
	
	public static boolean apenas_numeros(String _texto)
	{
		for(char c : _texto.toCharArray())
		{
			if(c < '0' || c > '9')
			{
				return false;
			}
		}
		
		return true;
	}
}
